package com.xpec.c4.db.model.basic;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.MappedSuperclass;

import com.xpec.c4.db.model.log.basic.BaseGameInfoLogModel;

@MappedSuperclass
public class SlotBasicGameLogModel extends BaseGameInfoLogModel{

	/**
	 * 
	 */
	private static final long serialVersionUID = 4007297849138344817L;
	
	/**館別**/
	private String halltype;
	
	/**機台座位編號**/
	private String seatid;

	/**幣值比*/
	private BigDecimal gainRate = BigDecimal.ONE;
	
	/**機台當前狀態(0:空位 1:有人 2:保留 3:離線保留)**/
	private int machinestat;

	/**性別**/
	private boolean gender;
	
	/**是否有jp**/
	private int jpstat;
	
	/**是否為掛機spin**/
	private boolean isofflinespin;
	
	/**水庫**/
	private BigDecimal waterpool;
	
	/** 總JP抽取：押注進 JP 的金額加總 */
	private BigDecimal betToJpSum;

	/** 總彩金：所有 JP 支出金額加總 */
	private BigDecimal jpPayoutSum;
	
	/**總押注**/
	private BigDecimal totalbet;
	
	/**總支出**/
	private BigDecimal payout;
	
	/**收入**/
	private BigDecimal income;
	
	
	/**歷史總押注**/
	private BigDecimal allbet;
	
	/**歷史總支出**/
	private BigDecimal allpayout;
	
	/**歷史收入**/
	private BigDecimal allincome;
	
	/**歷史轉數**/
	private BigDecimal allspin;
	
	
	/**試玩幣 - 總支出**/
	private BigDecimal trialpayout;
	
	/**試玩幣 - 歷史總押注**/
	private BigDecimal trialalltotalbet;
	
	/**試玩幣 - 歷史總支出**/
	private BigDecimal trialallpayout;
	
	/**試玩幣 - 歷史收入**/
	private BigDecimal trialallincome;
	
	/**試玩幣 - 歷史轉數**/
	private BigDecimal trialallspin;
	
/********************** 體驗幣 - 吐水相關*************************/
	
	/**上次吐水結束點**/
	protected BigDecimal trialpourBase;
	
	/**吐水啟動值**/
	protected BigDecimal trialpourStart;

	/**當次吐水值(小於0會停止，移到用囤水補還)**/
	protected BigDecimal trialpourTotal;
	
	/**吐水狀態**/
	protected String trialpourState;
	
	
	/**************體驗幣 賠率相關 **************/
	
	//本次儲水區間
	protected String trialwaterpool_range;
	
	//本次倒水比例
	protected int trialwaterpool_feedback;

	

	/**總押注**/
	private BigDecimal itemtotalbet;
	
	/**總支出**/
	private BigDecimal itempayout;
	
	/**收入**/
	private BigDecimal itemincome;
	
	
	/**歷史總押注**/
	private BigDecimal itemalltotalbet;
	
	/**歷史總支出**/
	private BigDecimal itemallpayout;
	
	/**歷史收入**/
	private BigDecimal itemallincome;
	
	/**歷史轉數**/
	private BigDecimal itemallspin;
	
	
	
	/**玩家機台設定**/
	private String gameoption;
	
	/**盤面記錄**/
	private String screensymbol;
	
	/**機台歷史記錄*/
	private String record;
	
	/**當前賠率表**/
	private String reelsetID;
	
	/**保留過期時間**/
	private long keep_expried;
	
	/**中獎項目**/
	private String bingotype;
	
	/**rtp切換表key**/
	private String rtpidxkey;
	
	/**是否為小樂**/
	private int usertype;
	
	/********************** 正式幣 - 吐水相關*************************/
	
	/**上次吐水結束點**/
	private BigDecimal pourBase;
	
	/**吐水啟動值**/
	private BigDecimal pourStart;

	/**當次吐水值(小於0會停止，移到用囤水補還)**/
	private BigDecimal pourTotal;
	
	/**吐水狀態**/
	private String pourState;
	
	/************** 賠率相關 **************/
	
	//本次儲水區間
	private String waterpool_range;
	
	
	/************* 玩家個人相關 **********/
	
	//玩家spin 前c幣
	private BigDecimal beformoney;
	
	//玩家 spin 後c幣
	private BigDecimal aftermoney;
	
	/************* 現金網相關 **********/
	
	/** 營運商 id */
	private String venderId;

	/** 子營運商 id */
	private String subVenderId;

	public String getTrialwaterpool_range() {
		return trialwaterpool_range;
	}

	public void setTrialwaterpool_range(String trialwaterpool_range) {
		this.trialwaterpool_range = trialwaterpool_range;
	}

	public int getTrialwaterpool_feedback() {
		return trialwaterpool_feedback;
	}

	public void setTrialwaterpool_feedback(int trialwaterpool_feedback) {
		this.trialwaterpool_feedback = trialwaterpool_feedback;
	}
	
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialpourBase() {
		return trialpourBase;
	}

	public void setTrialpourBase(BigDecimal trialpourBase) {
		this.trialpourBase = trialpourBase;
	}
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialpourStart() {
		return trialpourStart;
	}

	public void setTrialpourStart(BigDecimal trialpourStart) {
		this.trialpourStart = trialpourStart;
	}
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialpourTotal() {
		return trialpourTotal;
	}

	public void setTrialpourTotal(BigDecimal trialpourTotal) {
		this.trialpourTotal = trialpourTotal;
	}

	public String getTrialpourState() {
		return trialpourState;
	}

	public void setTrialpourState(String trialpourState) {
		this.trialpourState = trialpourState;
	}
	
	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getAftermoney() {
		return aftermoney;
	}

	public void setAftermoney(BigDecimal aftermoney) {
		this.aftermoney = aftermoney;
	}

	public int getUsertype() {
		return usertype;
	}

	public void setUsertype(int usertype) {
		this.usertype = usertype;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getBeformoney() {
		return beformoney;
	}

	public void setBeformoney(BigDecimal beformoney) {
		this.beformoney = beformoney;
	}

	//本次吐水回饋比
	private int waterpool_feedback;
	
	@Column(name="rtpidxkey" , columnDefinition="VARCHAR(55) default \'\'")
	public String getRtpidxkey() {
		return rtpidxkey;
	}

	public void setRtpidxkey(String rtpidxkey) {
		this.rtpidxkey = rtpidxkey;
	}
	
	public boolean getIsofflinespin() {
		return isofflinespin;
	}

	public void setIsofflinespin(boolean isofflinespin) {
		this.isofflinespin = isofflinespin;
	}

	
	@Column(name="bingotype" , columnDefinition="VARCHAR(512) default \'\'")
	public String getBingotype() {
		return bingotype;
	}

	public void setBingotype(String bingotype) {
		this.bingotype = bingotype;
	}
	
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getWaterpool() {
		return waterpool;
	}

	public void setWaterpool(BigDecimal waterpool) {
		this.waterpool = waterpool;
	}

	
	
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getPourBase() {
		return pourBase;
	}

	public void setPourBase(BigDecimal pourBase) {
		this.pourBase = pourBase;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getPourStart() {
		return pourStart;
	}

	public void setPourStart(BigDecimal pourStart) {
		this.pourStart = pourStart;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getPourTotal() {
		return pourTotal;
	}

	public void setPourTotal(BigDecimal pourTotal) {
		this.pourTotal = pourTotal;
	}
	
	public String getPourState() {
		return pourState;
	}

	public void setPourState(String pourState) {
		this.pourState = pourState;
	}

	
	
	
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getBetToJpSum() {
		return betToJpSum;
	}

	public void setBetToJpSum(BigDecimal betToJpSum) {
		this.betToJpSum = betToJpSum;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getJpPayoutSum() {
		return jpPayoutSum;
	}

	public void setJpPayoutSum(BigDecimal jpPayoutSum) {
		this.jpPayoutSum = jpPayoutSum;
	}
	
	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getAllbet() {
		return allbet;
	}

	public void setAllbet(BigDecimal allbet) {
		this.allbet = allbet;
	}

	public String getHalltype() {
		return halltype;
	}

	public void setHalltype(String halltype) {
		this.halltype = halltype;
	}

	public String getSeatid() {
		return seatid;	
	}

	public void setSeatid(String seatid) {
		this.seatid = seatid;
	}

	public int getMachinestat() {
		return machinestat;
	}

	public void setMachinestat(int machinestat) {
		this.machinestat = machinestat;
	}

	public boolean isGender() {
		return gender;
	}

	public void setGender(boolean gender) {
		this.gender = gender;
	}

	public int getJpstat() {
		return jpstat;
	}

	public void setJpstat(int jpstat) {
		this.jpstat = jpstat;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTotalbet() {
		return totalbet;
	}

	public void setTotalbet(BigDecimal totalbet) {
		this.totalbet = totalbet;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getPayout() {
		return payout;
	}

	public void setPayout(BigDecimal payout) {
		this.payout = payout;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getIncome() {
		return income;
	}

	public void setIncome(BigDecimal income) {
		this.income = income;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getAllpayout() {
		return allpayout;
	}

	public void setAllpayout(BigDecimal allpayout) {
		this.allpayout = allpayout;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getAllincome() {
		return allincome;
	}

	public void setAllincome(BigDecimal allincome) {
		this.allincome = allincome;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getAllspin() {
		return allspin;
	}

	public void setAllspin(BigDecimal allspin) {
		this.allspin = allspin;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialpayout() {
		return trialpayout;
	}

	public void setTrialpayout(BigDecimal trialpayout) {
		this.trialpayout = trialpayout;
	}


	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialalltotalbet() {
		return trialalltotalbet;
	}

	public void setTrialalltotalbet(BigDecimal trialalltotalbet) {
		this.trialalltotalbet = trialalltotalbet;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialallpayout() {
		return trialallpayout;
	}

	public void setTrialallpayout(BigDecimal trialallpayout) {
		this.trialallpayout = trialallpayout;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialallincome() {
		return trialallincome;
	}

	public void setTrialallincome(BigDecimal trialallincome) {
		this.trialallincome = trialallincome;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getTrialallspin() {
		return trialallspin;
	}

	public void setTrialallspin(BigDecimal trialallspin) {
		this.trialallspin = trialallspin;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getItemtotalbet() {
		return itemtotalbet;
	}

	public void setItemtotalbet(BigDecimal itemtotalbet) {
		this.itemtotalbet = itemtotalbet;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getItempayout() {
		return itempayout;
	}

	public void setItempayout(BigDecimal itempayout) {
		this.itempayout = itempayout;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getItemincome() {
		return itemincome;
	}

	public void setItemincome(BigDecimal itemincome) {
		this.itemincome = itemincome;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getItemalltotalbet() {
		return itemalltotalbet;
	}

	public void setItemalltotalbet(BigDecimal itemalltotalbet) {
		this.itemalltotalbet = itemalltotalbet;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getItemallpayout() {
		return itemallpayout;
	}

	public void setItemallpayout(BigDecimal itemallpayout) {
		this.itemallpayout = itemallpayout;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getItemallincome() {
		return itemallincome;
	}

	public void setItemallincome(BigDecimal itemallincome) {
		this.itemallincome = itemallincome;
	}

	@Column(precision = 19, scale = 2 , columnDefinition="DECIMAL(19,2) default 0.0")
	public BigDecimal getItemallspin() {
		return itemallspin;
	}

	public void setItemallspin(BigDecimal itemallspin) {
		this.itemallspin = itemallspin;
	}

	@Column(name="gameoption" , columnDefinition="VARCHAR(512) default \'\'")
	public String getGameoption() {
		return gameoption;
	}

	public void setGameoption(String gameoption) {
		this.gameoption = gameoption;
	}

	@Column(name="screensymbol" , columnDefinition="VARCHAR(255) default \'\'")
	public String getScreensymbol() {
		return screensymbol;
	}

	public void setScreensymbol(String screensymbol) {
		this.screensymbol = screensymbol;
	}

	@Column(name="record" , columnDefinition="VARCHAR(1024) default \'\'")
	public String getRecord() {
		return record;
	}

	public void setRecord(String record) {
		this.record = record;
	}

	public String getReelsetID() {
		return reelsetID;
	}

	public void setReelsetID(String reelsetID) {
		this.reelsetID = reelsetID;
	}

	public long getKeep_expried() {
		return keep_expried;
	}

	public void setKeep_expried(long keep_expried) {
		this.keep_expried = keep_expried;
	}

	
	public String getWaterpool_range() {
		return waterpool_range;
	}

	public void setWaterpool_range(String waterpool_range) {
		this.waterpool_range = waterpool_range;
	}

	public int getWaterpool_feedback() {
		return waterpool_feedback;
	}

	public void setWaterpool_feedback(int waterpool_feedback) {
		this.waterpool_feedback = waterpool_feedback;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 1.0")
	public BigDecimal getGainRate() {
		return gainRate;
	}

	public void setGainRate(BigDecimal gainRate) {
		this.gainRate = gainRate;
	}
	
	@Column(columnDefinition="VARCHAR(50) NOT NULL default 'TONWA'")
	public String getVenderId() {
		return venderId;
	}

	public void setVenderId(String venderId) {
		this.venderId = venderId;
	}

	@Column(columnDefinition="VARCHAR(50) NOT NULL default 'TONWA'")
	public String getSubVenderId() {
		return subVenderId;
	}

	public void setSubVenderId(String subVenderId) {
		this.subVenderId = subVenderId;
	}
}
